package org.example.authservice.utils;

import org.slf4j.MDC;

import java.util.UUID;

/**
 * @author lj20050120
 */
public class TraceUtils {
    private static final String TRACE_ID = "traceId";

    /**
     * 设置 traceID
     * @param traceID 要设置的 traceID
     */
    public static void set(String traceID) {
        MDC.put(TRACE_ID, traceID);
    }

    /**
     * 获取当前的 traceID
     * @return 当前的 traceID
     */
    public static String get() {
        return MDC.get(TRACE_ID);
    }

    /**
     * 移除当前的 traceID
     */
    public static void remove() {
        MDC.remove(TRACE_ID);
    }

    /**
     * 生成一个新的 traceID
     * @return 生成的 traceID
     */
    public static String generate() {
        return UUID.randomUUID().toString().replace("-", "").substring(0, 16);
    }
}